<?php
/*
Autor: Jonathan Vindas Abarca
Fecha: 13/07/2012
Descripción: Este archivo contiene la declaración de la clase controladora de guias.
Bitacora de modificaciones:
<
    Autor: 
    Fecha: 
    Descripción: 
>
*/
    function mensajeConfirmacionGuias($bandera)
    {        
        try 
        {
            if($bandera=='Agrega')
            {                       
                ?>
                <script type="text/javascript">
                $().message("Se agrego la Gu&iacute;a satisfactoriamente.");
                e.preventDefault();
                $().message($("#message").val());
                </script>
                <?php
            }
            elseif ($bandera=='Modifica') 
            {            
                ?>
                <script type="text/javascript">
                $().message("Se modifico la Gu&iacute;a satisfactoriamente.");
                e.preventDefault();
                $().message($("#message").val());
                </script>
                <?php                
            }
            elseif ($bandera=='Elimina') 
            {        
                ?>
                <script type="text/javascript">
                $().message("Se elimino la Gu&iacute;a satisfactoriamente.");
                e.preventDefault();
                $().message($("#message").val());
                </script>
                <?php
            }
            elseif ($bandera=='Linea Detalle Dependientes') 
            {        
                ?>
                <script type="text/javascript">
                $().message("La guia tiene articulos asociados a la divisi&oacute;n");
                e.preventDefault();
                $().message($("#message").val());
                </script>
                <?php    
            }
            elseif ($bandera=='Guia con lineas asociadas') 
            {        
                ?>
                <script type="text/javascript">
                $().message("La gu&iacute;a tiene l&iacute;neas asociadas");
                e.preventDefault();
                $().message($("#message").val());
                </script>
                <?php    
            }
             elseif ($bandera=='SinPermisos') {

            ?>
                    <script type="text/javascript">

                            $().message("Su usuario no posee permisos para esta acci&oacute;n.");
                            e.preventDefault();
                            $().message($("#message").val());

                        </script>

                    <?php

            }
        }
        catch (Exception $e) 
        {
            echo 'Excepción capturada: ',  $e->getMessage(), "\n";
        }
    }
       
    function listarGuias() 
    {
        /*Este metodo esta conectado con el modulo de seguridad*/
        require_once('FirePHPCore/FirePHP.class.php');        
        require_once '../modelos/guiasModelo.php';       
        require_once 'dataControlador.php';        
        if(validarPermisos('buscarTodosLosGuia'))
        {
            $items = buscarTodosLosGuia();                    
            $total_registros =sizeof($items);                    
            require 'GuiasEnvio/listarGuia.php';
        }        
        else
        {
            $items = null;                        
            require 'GuiasEnvio/listarGuia.php';            
            mensajeConfirmacionGuias('SinPermisos'); 
        }
    }

    function modificarGuias() 
    {        
        require_once '../modelos/guiasModelo.php';
        require_once '../modelos/lineasModelo.php';
        require_once('FirePHPCore/FirePHP.class.php');
        $firephp = FirePHP::getInstance(true);
        $bandera='';
        $existeDependencia=false;
        $tieneArticulosAsociados=false;
        $codigoGuia= $_GET['codigoGuia'];            
        $lineasDependientes=encontrarDependenciaLineasConGuia($codigoGuia);
        foreach($lineasDependientes as $item)
        {
            $codigoGuia=$item['codguia'];
            $codigoEmbalaje=$item['embalaje'];                   
            $existeDependencia=buscarLineaDetallesXCodGuiaEmba($codigoGuia, $codigoEmbalaje);
            if($existeDependencia==true)
            {
                $tieneArticulosAsociados=$existeDependencia;
            }
        }        
        if($tieneArticulosAsociados==true)
        {
            $bandera='Linea Detalle Dependientes';
            $firephp->log($bandera,"Articulos asociados");
            listarGuias();   
            mensajeConfirmacionGuias($bandera);        
        }
        else
        {
            $bodegaRemitente= $_GET['txtBodegaRemitente'];
            $bodegaDestino= $_GET['txtBodegaDestino'];
            $nombreLocalidad=$_GET['nombreBodegaRemitente'];
            $codigoTransportista= $_GET['txtTransportista'];        
            $fecha=normalizarFecha($_GET['txtFecha']);                    
            $fechaNormalizada = preg_replace("[/]", "", $fecha);  
            $montoPagar= $_GET['montoPagar'];
            $codigoLocalidadAnterior= $_GET['nombreLocalidadAnterior'];
            $codigoCompaniaAnterior= $_GET['nombreCompaniaAnterior'];
            $firephp->log($fecha,"fechaInterfaz");
            $firephp->log($fechaNormalizada,"fecha BD");
            $firephp->log($codigoLocalidadAnterior,"codigo localidad anterior");
            $firephp->log($codigoCompaniaAnterior,"codigo compania anterior");
            $firephp->log($bodegaDestino,"codigo compania nuevo");
            $firephp->log($bodegaRemitente,"codigo localidad nuevo");
            // se verifica si la compañia y la division son diferentes hacemos un update con trigger
            $bandera='Modifica';            
            //modificarGuia($codigoGuia,$bodegaRemitente,$bodegaDestino,$codigoTransportista,$fecha,$montoPagar,$nombreLocalidad);                
            
            //update sin trigger
            if(($bodegaDestino==$codigoCompaniaAnterior) && ($bodegaRemitente==$codigoLocalidadAnterior))
            {//update solo de fecha, nombre de transportista
                $firephp->log('no trigger',"No hacer trigger");
                modificarParcialmenteGuia($codigoGuia,$codigoTransportista,$fecha);
            }
            else
            {
                $firephp->log('si trigger',"Si hacer trigger");
                modificarGuia($codigoGuia,$bodegaRemitente,$bodegaDestino,$codigoTransportista,$fecha,$montoPagar,$nombreLocalidad);                
            }
            listarGuias();   
            mensajeConfirmacionGuias($bandera); 
        }                
    }
     
    function normalizarFecha($date)
    {
        if(!empty($date))
        {
            $var = explode('/',str_replace('-','/',$date));
            return "$var[2]/$var[1]/$var[0]";
	}        
    }

    function agregarGuias() 
    {
        require '../modelos/guiasModelo.php';
        require_once('FirePHPCore/FirePHP.class.php');
        $firephp = FirePHP::getInstance(true);       
        $bandera="";
        try 
        {           
            
            //if(validarPermisos('modificarTransportista'))           
                if ($_POST['hddAccion']=="agregarGuias")
                {     
                    $nombreLocalidad=$_POST['hddNombreLocalidad'];              
                    $fecha=normalizarFecha($_POST['datepicker']) ;                                                       
                    $fechap = preg_replace("[/]", "", $fecha);                                                            
                    $firephp->log($nombreLocalidad,"nombre localidad");
                    agregarGuia($_POST['hddCodGuia'],$_POST['cmbBodegaRemitente'],$_POST['cmbBodegaDestino'],$_POST['cmbVia'],$fechap,0.0,$nombreLocalidad);
                    $bandera='Agrega';
                     direccionarAgregarGuias();                    
                }
                                
            mensajeConfirmacionGuias($bandera);        
        }
        catch (Exception $e) 
        {
            echo 'Excepción capturada: ',  $e->getMessage(), "\n";
        }        
    }

    function eliminarGuias() 
    {
        /* Modicar metodo para validar permisos*/
        require '../modelos/guiasModelo.php';
        $bandera="";
        try 
        {   
            //if(validarPermisos('modificarTransportista'))
            if(encontrarGuiaConDependencia($_GET['txtCodGuia'])==true)
            {
                $bandera='Guia con lineas asociadas';
            }
            else
            {
                eliminarGuiaControlador($_GET['txtCodGuia']);
                $bandera='Elimina';
            }                                                  
            listarGuias();
            mensajeConfirmacionGuias($bandera);
        }
        catch (Exception $e) 
        {
            echo 'Excepción capturada: ',  $e->getMessage(), "\n";
        }
    }
           
    function PaginaPrincipalGuias ()
    {
            //echo 'Aqui incluiremos nuestro formulario para insertar items';
        require '../vistas/portada.php';
    }
    
    function direccionarAgregarGuias()
    {
        require_once 'dataControlador.php';        
        require_once '../modelos/guiasModelo.php'; 
		
        if(validarPermisos('agregarGuia'))
        {        
            $accion = 'agregarGuias';			
            require 'GuiasEnvio/agregarGuia.php';}
        else
        {
			$bandera='SinPermisos';
            $items = buscarTodosLosGuia();                    
            $total_registros =sizeof($items);                    
            require 'GuiasEnvio/listarGuia.php';
        }
		mensajeConfirmacionGuias($bandera);
    }
    
    function verGuiaCompleta()
    {
        require_once '../modelos/lineasModelo.php';
        $codGuia = $_POST['hddCodGuia'];
        $bodegaRemitente = $_POST['hddBodegaRemitente'];
        $bodegaDestino= $_POST['hddBodegaDestino'];
        $via = $_POST['hddVia'];
        $fechaEnvio = $_POST['hddFechaEnvio'];
        $monPagar = $_POST['hddMonPagar'];
        $accion = $_POST['hddAccion'];
        $items = buscarTodasLineasXCodGuiaEmba($codGuia);
        $total_registros =sizeof($items);                    
        require 'GuiasEnvio/verGuiaCompleta.php';

    }
    
    function buscarGuiasAsociadasOrden()
    {
        require 'GuiasEnvio/guiasAsociadasOrden.php';
    }
    
?>